1. Field of the Invention
The present invention relates generally to a system including intercommunicating client and server applications, and more particularly, to such a system, a method, and an apparatus for automatically and dynamically updating options, features, and/or services available to a client device.
2. Related Art
A typical client-server environment includes a client application, such as an Internet web-browser, and a server application respectively executing on independent computer based platforms and communicating with one another. The client application submits information requests to the server application in response to user input at the client end. In response, the server transmits information responses to the client application. The user interacts with the clientserver environment using a Graphical User Interface (GUI) of the client application.
A large number of client and browser applications can operate in a distributed service environment. A distributed service environment is one in which the numerous client applications interact with one or more server applications, each of the server applications hosting a wide variety of data services provided by a variety of xe2x80x9cprivatexe2x80x9d and possibly public service providers. Wireless client devices including the above mentioned client applications can operate in such a distributed service environment. The user interacts with available services via the client application user interface.
Often, new services are added and existing services are expanded to include new service options and features in the distributed services environment. It is important that such added and expanded services be made available to the user. Usually, to achieve such a goal, both the server and client applications must be reconfigured in accordance with the service changes or upgrades. One burdensome approach includes tediously redeveloping both server and client applications (for example, computer programs). Redeveloping a client application can be particularly difficult when the client application executes on a custom device, such as a wireless pager, instead of a well-known development platform, such as a personal computer. For example, developing the client application for a pager requires knowledge of custom circuitry in the pager.
In addition, reconfiguring numerous geographically distributed client devices with a redeveloped client application typically entails a large expense and presents many logistical difficulties. One disadvantageous approach to reconfiguring service capable pagers, for example, requires the user to return the pager to a service center or dealer. Another disadvantageous approach requires downloading redeveloped client applications or configuration information in a broadcast manner to an entire, large population of client devices. This can be prohibitively expensive and wasteful of transmission bandwidth. Also, there is no need to perform such a download to an unused client device, or to a client device not requiring access to an updated service, for example.
It is also important to maintain configuration control over the numerous distributed client devices in a distributed services environment. A central facility, or the like, usually tracks the various service configurations for all of the service users (client applications).
Therefore, there is a need to reconfigure a client device to accommodate new and expanded services in a distributed service environment.
There is a further need to reconfigure such client devices in a manner that is transparent to the user, thereby reducing user inconvenience relative to known reconfiguring techniques.
There is an even further need to reconfigure client and server devices without redeveloping and distributing client and server application software.
There is a related need to maintain configuration control over distributed client devices with regard to service capability of the client device. It is desirable to maintain such service configuration using a convenient, flexible, and comprehensive technique, that encompasses a quickly changing service environment.
There is a further need to selectively update or reconfigure only those client devices requiring the update, that is, only those client devices operating and accessing updated features, services and options.
The present invention is directed to a system, a method, and an apparatus for automatically and dynamically updating options, features, and/or services available to a client device operating in a client-server environment. In the present invention, one or more client devices are reconfigured to accommodate new and expanded services in a distributed service environment. Each client device is advantageously reconfigured in a manner that is transparent to the user, thereby reducing user inconvenience relative to known reconfiguring techniques. The client devices are advantageously reconfigured without redeveloping and distributing client and server application software. The present invention advantageously avoids wasteful and expensive broadcast downloads of reconfiguration information. Instead, the present invention selectively updates or reconfigures only those client devices requiring the update
The present invention offers the further advantage of maintaining configuration control over distributed client devices with regard to service capability of the distributed client devices. In the present invention, configuration control is maintained using a convenient, flexible, and comprehensive technique, that encompasses a quickly changing service environment.
One embodiment of the present invention is a method of automatically reconfiguring a client device in a client-server system including one or more client devices, each associated with a unique client identifier and having a client template database for storing one or more templates defining a configuration of the client device, and a server having a server template database. The method comprises the steps of receiving a client request including a template identifier from a client device, and retrieving a template corresponding to the template identifier from the server template database. The method further includes determining whether the client device requires a template update using the template identifier and the retrieved template, and sending a server response including template update information when the client device requires the template update as determined previously, to thereby reconfigure the client device. This embodiment provides an advantageous mechanism whereby templates stored at the server and later modified are downloaded only to users accessing such templates and services associated with the templates.
Another related embodiment of the present invention is a method of reconfiguring a client device, including the steps of sending a client request from the client device, and receiving a server response from a server, wherein the server response includes a template identifier. The method further includes determining whether the server response includes template update information, and updating a template corresponding to the template identifier in a template database with the template update information when the server response includes the template update information as determined previously, to thereby reconfigure the client device.
Additional related embodiments of the present invention directed to a system, and client and server apparatuses are also provided.
Additional features and advantages of the present invention, as well as the structure and operation of various embodiments of the present invention, are described in detail below with reference to the accompanying drawings.